import numpy as np

'''
埃拉托斯特尼筛法是打印一段范围内的所有质数。
主要思路：从第一个质数2开始，数据里所有能被2整除的数字都不是质数，
即从2开始，以2为步长，每经过的数字都能被2整除，把其标识为非质数。
'''
a = np.arange(1, 101)
n_max = int(np.sqrt(len(a)))
is_prime = np.ones(len(a), dtype=bool)
is_prime[0] = False
for i in range(2, n_max):
    if i in a[is_prime]:
        is_prime[i ** 2 - 1::i] = False
print(a[is_prime])
